package SQL.Mybatis.run;

import SQL.Mybatis.Annotation.DAO.UserDao;
import SQL.Mybatis.Entity.User;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;


/**
 * Created by kz on 2017/5/17.
 */
public class app {
    public static void main(String[] args) throws IOException {
        //mybatis的配置文件
        String resource = "mybatis/config.xml";
        //使用类加载器加载mybatis的配置文件（它也加载关联的映射文件）
        InputStream is = app.class.getClassLoader().getResourceAsStream(resource);
        //构建sqlSession的工厂
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
        //使用MyBatis提供的Resources类加载mybatis的配置文件（它也加载关联的映射文件）
        //Reader reader = Resources.getResourceAsReader(resource);
        //构建sqlSession的工厂
        //SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        //创建能执行映射文件中sql的sqlSession
        SqlSession session = sessionFactory.openSession();

        String statement = "getUser";//映射sql的标识字符串
        //执行查询返回一个唯一user对象的sql
        User user = session.selectOne(statement, 1);
        System.out.println(user);

        System.out.println("---------------------");

/*****使用注解直接调用方法
 * **********/

        UserDao userDao = session.getMapper(UserDao.class);
        user = userDao.getById2(1);
        System.out.println(user);
    }
}
